#!/bin/bash
#
# Trabajo Practico 1 Ejercicio 6
# Entrega número: 1
#
# - Integrantes:
#	- Martinez, Guillermo	DNI: 34510461
#	- Meli, Marcos		DNI: 31832759
#	- Reyes, Leandro	DNI: 34213699
#	- Rodriguez, Lucas	DNI: 34265017
#	- Cortez, Martin	DNI: 30440023
#

showError()
{
   echo "==> Error de sintaxis."
   echo "Sintaxis para obtener ayuda:"
   echo "   $0 -h"
}

checkError()
{
   if [ $1 -lt 1 ]
   then
      showError
      exit 1
   fi
  
   if [ $1 -eq 1 ] && ([ $2 = "-h" ] || [ $2 = "-?" ])
   then
      checkHelp $2
   fi
}

showHelp()
{
   echo "==> Ayuda - $0"
   echo "Lista usuarios de las iniciales ingresadas"
   echo " Sintaxis de ejecución con iniciales:"
   echo "   $0 i,n,i,c,i,a,l"
   echo " Sintaxis de ejecución de rango:"
   echo "   $0 a-z"
   echo " Sintaxis para obtener ayuda:"
   echo "   $0 -h"
   echo " Sintaxis para obtener versión y ayuda:"
   echo "   $0 -?"
}

checkHelp()
{
   case $1 in
   -h)
      showHelp
   ;;
   -?)
      OpcionStandar
   ;;
   esac
   exit 0
}

OpcionStandar()
{ #Opción standard ‘-?’ que indica el número de versión y las formas de llamada.
   echo "$0 - Version 1.0"
   showHelp
}

#comienzo de programa, chequeo parametros
checkError $# $1

str="vacio"

VALIDA=`echo "$1" | sed -e 's/[a-z]-[a-z]/rango/' 2>/dev/null`
if [ $VALIDA != "rango" ]
then
   VALIDA=`echo "$1" | sed -e 's/[A-Z]-[A-Z]/RANGO/' 2>/dev/null`
   if [ $VALIDA != "RANGO" ]
   then
      #controlamos que la cadena ingresada sea correcta i,n,i,c,i,a,l
      for((i=1;i<=${#1};i++))
      do
         aux=`expr substr $1 $i 1`
         es_par=`expr $i % 2`
         if test $aux != "," && [ $es_par = 0 ]
         then
            echo "Sintaxis incorrecta en $2"
            showError
            exit
         fi
      done
   else
      str=$1
   fi
else
   str=$1
fi

#Eliminamos comas indeseadas. a,b,,,c  --> ab,c
if test $str = "vacio"
then
   str=""
   for((i=1;i<=${#1};i++))
   do
      aux=`expr substr $1 $i 1`
      es_par=`expr $i % 2`
      if [ $es_par = 1 ]
      then
         str="$str""$aux"
      fi
   done
fi

#Creamos la expresión que filtrará según el parámetro de entrada en el sed
EXPRESION="/^[^""$str""]/d"

getent passwd | awk -F : 'BEGIN{FS=":";}{if($3 >= 1000 && $3 <= 1999){print $1","$6;}}' | sed -e "$EXPRESION" 2>/dev/null

exit 0
#~ FIN DE ARCHIVO
